package dto;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.Pattern;
import org.hibernate.validator.constraints.NotEmpty;

public class UtenteDTO {
	
	@Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?",
            message="Formato Email non valido")
	private String email;
	
	@NotEmpty(message="Il campo nome non può essere vuoto")
    private String nome;
	
	@NotEmpty(message="Il campo cognome non può essere vuoto")
    private String cognome;
	
	@NotEmpty(message="Il campo password non può essere vuoto")
    private String password;
	
	private Date data;

	private String luogoNascita;

	private String città;

	private String indirizzo;
	@Pattern(regexp="[0-9]+",
            message="Formato Telefono non valido")
	private String telefono;
	private boolean confermato;
	private List<PacchettoPersonaleDTO> pacchettiPersonali;
	private List<PacchettoPredefinitoDTO> pacchettiPredefiniti;
    private List<ElementoBaseDTO> giftList;
    private List<AcquistoDTO> acquisto;
    private List<GruppoDTO> gruppi;
    
	public UtenteDTO(){
		this.pacchettiPersonali = new ArrayList<PacchettoPersonaleDTO>();
		this.pacchettiPredefiniti = new ArrayList<PacchettoPredefinitoDTO>();
		this.giftList = new ArrayList<ElementoBaseDTO>();
		this.acquisto = new ArrayList<AcquistoDTO>();
		this.gruppi = new ArrayList<GruppoDTO>();
	}
  
    public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCognome() {
		return cognome;
	}

	public void setCognome(String cognome) {
		this.cognome = cognome;
	}

	public String getEmail() {
        return email;
    } 
 
    public void setEmail(String email) {
        this.email = email;
    }
  
    public String getPassword() {
        return password;
    }
     
    public void setPassword(String password) {
        this.password = password;
    }

	public List<PacchettoPersonaleDTO> getPacchettiPersonali() {
		return pacchettiPersonali;
	}

	public void setPacchettiPersonali(List<PacchettoPersonaleDTO> pacchettiPersonali) {
		this.pacchettiPersonali = pacchettiPersonali;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public String getLuogoNascita() {
		return luogoNascita;
	}

	public void setLuogoNascita(String luogoNascita) {
		this.luogoNascita = luogoNascita;
	}

	public String getCittà() {
		return città;
	}

	public void setCittà(String città) {
		this.città = città;
	}

	public String getIndirizzo() {
		return indirizzo;
	}

	public void setIndirizzo(String indirizzo) {
		this.indirizzo = indirizzo;
	}

	public boolean isConfermato() {
		return confermato;
	}

	public void setConfermato(boolean confermato) {
		this.confermato = confermato;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public List<ElementoBaseDTO> getGiftList() {
		return giftList;
	}

	public void setGiftList(List<ElementoBaseDTO> giftList) {
		this.giftList = giftList;
	}

	public List<AcquistoDTO> getAcquisto() {
		return acquisto;
	}

	public void setAcquisto(List<AcquistoDTO> acquisto) {
		this.acquisto = acquisto;
	}

	public List<PacchettoPredefinitoDTO> getPacchettiPredefiniti() {
		return pacchettiPredefiniti;
	}

	public void setPacchettiPredefiniti(
			List<PacchettoPredefinitoDTO> pacchettiPredefiniti) {
		this.pacchettiPredefiniti = pacchettiPredefiniti;
	}

	public List<GruppoDTO> getGruppi() {
		return gruppi;
	}

	public void setGruppi(List<GruppoDTO> gruppi) {
		this.gruppi = gruppi;
	}
	
	

}
